#pragma once
#include <vector>
#include "NBE.h"

#include "RenderSystem.h"
#include "Singleton.h"
namespace NBE
{
	class NBE_API ShaderManager: public Singleton<ShaderManager>
	{
	public:
		ShaderManager();
		~ShaderManager();
		void initialize(RenderSystem* currentRenderSystem);
		unsigned int loadShader(wchar_t* fileName);
		//unsigned int loadShader(wchar_t* fileName);//no extension; eg. L"specular"
		Shader* getShaderByIdx(unsigned int idx);
	private:
		std::vector<Shader*> m_ShaderVec;
		RenderSystem* m_RenderSystem;
	};
}